package design_pattern.observer;

/**
 * Created by WeiDingKuo on 2017/10/26 20:34
 * <p>
 * 观察者模式
 * <p>
 * 被观察者保存一个观察者的集合，观察者依赖一个被观察者的引用，一个被观察者可以有多个观察者，是一对多的关系
 * 被观察者实现被观察者接口，通过 注册观察者、删除观察者、通知观察者，来实现观察者模式
 * 观察者中保存被观察者的引用，通过调用被观察者的 注册和删除方法，主动对被观察者进行“观察”和“取消观察”
 */
public class Test {
    public static void main(String[] args) {
        ConcreteSubject subject = new ConcreteSubject();
        Observer observer1 = new ObserverImpl1(subject);
        Observer observer2 = new ObserverImpl2(subject);

        subject.dosomething();
    }
}
